Hyperstrictness and the Parallel Evaluation of Lazy Functional Programs
نویسنده
چکیده
Strictness analysis can be used for automatic parallelization of lazy functional programs while preserving their semantics (and termination properties, in particular). This paper considers ways of exploiting strictness analysis in implementing functional languages eeciently on stock parallel hardware. A strictness{based parallel evaluation model is presented, and is compared with the more general evaluation transformer model of Burn 91b, Burn 91a]. A diierent treatment of higher{order functions is discussed, and its potential beneets for controlling the granularity of parallelism are shown. Results produced by a simulated parallel implementation of the evaluation model are included.
منابع مشابه
Hardware-Assisted and Target-Directed Evaluation of Functional Programs
A new reduction machine for lazy functional languages called the Reduceron is proposed. The Reduceron exploits wide, parallel memories to increase evaluation speed, and is prototyped in programmable hardware. It is compared with conventional machines by a theoretical analysis and by an experimental comparison. It is shown that the use of wide, parallel memories in a graph reduction machine can ...
متن کاملMechanized Reasoning about Concurrent Functional Programs
Various mechanisms have been used for adapting functional languages to parallel machines, ranging from semantics{preserving annotations to concurrent language extensions. Concurrent extensions are applicable to both lazy and strict languages, and give the programmer full control over parallel evaluation; however, they complicate the proofs of program correct-ness. This paper pursues the concurr...
متن کاملPath Semantics
Knowledge of order of evaluation of expressions is useful for compile-time optimizations for lazy sequential functional programs. We present path semantics, a non-standard semantics that describes order of evaluation for a first-order functional language with lazy evaluation. We also provide an effective abstraction of path semantics that provides compile-time information. We show how path sema...
متن کاملImplementing the Evaluation Transformer Model of Reduction on Parallel Machines
The evaluation transformer model of reduction generalises lazy evaluation in two ways: it can start the evaluation of expressions before their rst use, and it can evaluate expressions further than weak head normal form. Moreover, the amount of evaluation required of an argument to a function may depend on the amount of evaluation required of the function application. It is a suitable candidate ...
متن کاملThe Impact of Laziness on Parallelism and the Limits of StrictnessAnalysisG
The major question examined by this paper is whether suucient ne-grain parallelism can be obtained from programs written in a lazy functional language. To answer this question, we have implemented a prototype compiler based on a novel approach to strictness analysis (called abstract demand propagation) and we have compared this implementation strategy (optimized lazy) with other implementations...
متن کامل